# This should match the schema defined in external_deps.bzl.

PROTOBUF_VERSION = "26.1"

# These names of these deps *must* match the names used in `/bazel/protobuf.patch`,
# and both must match the names from the protobuf releases (see
# https://github.com/protocolbuffers/protobuf/releases).
# The names change in upcoming versions.
# The shas are calculated from the downloads on the releases page.
PROTOC_VERSIONS = dict(
    linux_aarch_64 = "64a3b3b5f7dac0c8f9cf1cb85b2b1a237eb628644f6bcb0fb8f23db6e0d66181",
    linux_x86_64 = "a7be2928c0454f132c599e25b79b7ad1b57663f2337d7f7e468a1d59b98ec1b0",
    osx_aarch_64 = "26a29befa8891ecc48809958c909d284f2b9539a2eb47f22cadc631fe6abe8fd",
    osx_x86_64 = "febd8821c3a2a23f72f4641471e0ab6486f4fb07b68111490a27a31681465b3c",
    win64 = "9090d135a1159042b13b4e51b210e40cb820d85a5032a6eca5f9b3ca3bdfb539",
)

REPOSITORY_LOCATIONS_SPEC = dict(
    bazel_compdb = dict(
        project_name = "bazel-compilation-database",
        project_desc = "Clang JSON compilation database support for Bazel",
        project_url = "https://github.com/grailbio/bazel-compilation-database",
        version = "40864791135333e1446a04553b63cbe744d358d0",
        sha256 = "acd2a9eaf49272bb1480c67d99b82662f005b596a8c11739046a4220ec73c4da",
        strip_prefix = "bazel-compilation-database-{version}",
        urls = ["https://github.com/grailbio/bazel-compilation-database/archive/{version}.tar.gz"],
        release_date = "2022-09-06",
        use_category = ["build"],
        license = "Apache-2.0",
        license_url = "https://github.com/grailbio/bazel-compilation-database/blob/{version}/LICENSE",
    ),
    bazel_features = dict(
        project_name = "Bazel features",
        project_desc = "Support Bazel feature detection from starlark",
        project_url = "https://github.com/bazel-contrib/bazel_features",
        version = "1.17.0",
        sha256 = "bdc12fcbe6076180d835c9dd5b3685d509966191760a0eb10b276025fcb76158",
        urls = ["https://github.com/bazel-contrib/bazel_features/releases/download/v{version}/bazel_features-v{version}.tar.gz"],
        strip_prefix = "bazel_features-{version}",
        release_date = "2024-09-13",
        use_category = ["build"],
        license = "Apache-2.0",
        license_url = "https://github.com/bazel-contrib/bazel_features/blob/v{version}/LICENSE",
    ),
    bazel_gazelle = dict(
        project_name = "Gazelle",
        project_desc = "Bazel BUILD file generator for Go projects",
        project_url = "https://github.com/bazelbuild/bazel-gazelle",
        version = "0.38.0",
        sha256 = "8ad77552825b078a10ad960bec6ef77d2ff8ec70faef2fd038db713f410f5d87",
        urls = ["https://github.com/bazelbuild/bazel-gazelle/releases/download/v{version}/bazel-gazelle-v{version}.tar.gz"],
        release_date = "2024-08-01",
        use_category = ["build"],
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/bazel-gazelle/blob/v{version}/LICENSE",
    ),
    bazel_toolchains = dict(
        project_name = "bazel-toolchains",
        project_desc = "Bazel toolchain configs for RBE",
        project_url = "https://github.com/bazelbuild/bazel-toolchains",
        version = "5.1.2",
        sha256 = "02e4f3744f1ce3f6e711e261fd322916ddd18cccd38026352f7a4c0351dbda19",
        strip_prefix = "bazel-toolchains-{version}",
        urls = [
            "https://github.com/bazelbuild/bazel-toolchains/archive/v{version}.tar.gz",
        ],
        release_date = "2022-08-09",
        use_category = ["build"],
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/bazel-toolchains/blob/v{version}/LICENSE",
    ),
    build_bazel_rules_apple = dict(
        project_name = "Apple Rules for Bazel",
        project_desc = "Bazel rules for Apple platforms",
        project_url = "https://github.com/bazelbuild/rules_apple",
        version = "3.9.0",
        sha256 = "f8fa96115c33e128cb72e9b7118a5f9294731a7dda8e36d04ddb582671f48dc1",
        urls = ["https://github.com/bazelbuild/rules_apple/releases/download/{version}/rules_apple.{version}.tar.gz"],
        release_date = "2024-09-18",
        use_category = ["build"],
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_apple/blob/{version}/LICENSE",
    ),
    com_github_bazelbuild_buildtools = dict(
        project_name = "Bazel build tools",
        project_desc = "Developer tools for working with Google's bazel buildtool.",
        project_url = "https://github.com/bazelbuild/buildtools",
        version = "7.3.1",
        sha256 = "051951c10ff8addeb4f10be3b0cf474b304b2ccd675f2cc7683cdd9010320ca9",
        release_date = "2024-08-27",
        strip_prefix = "buildtools-{version}",
        urls = ["https://github.com/bazelbuild/buildtools/archive/v{version}.tar.gz"],
        use_category = ["test_only"],
    ),
    envoy_examples = dict(
        project_name = "envoy_examples",
        project_desc = "Envoy proxy examples",
        project_url = "https://github.com/envoyproxy/examples",
        version = "0.0.5",
        sha256 = "2660070645623edbf4136d3a47109249bd53ffd8ff99ea13159439ad0be757cc",
        strip_prefix = "examples-{version}",
        urls = ["https://github.com/envoyproxy/examples/archive/v{version}.tar.gz"],
        use_category = ["test_only"],
        release_date = "2024-09-05",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/envoyproxy/examples/blob/v{version}/LICENSE",
    ),
    rules_fuzzing = dict(
        project_name = "Fuzzing Rules for Bazel",
        project_desc = "Bazel rules for fuzz tests",
        project_url = "https://github.com/bazelbuild/rules_fuzzing",
        # Patch contains workaround for https://github.com/bazelbuild/rules_python/issues/1221
        version = "0.5.2",
        sha256 = "3ec0eee05b243552cc4a784b30323d088bf73cb2177ddda02c827e68981933f1",
        strip_prefix = "rules_fuzzing-{version}",
        urls = ["https://github.com/bazelbuild/rules_fuzzing/archive/v{version}.tar.gz"],
        release_date = "2024-05-14",
        use_category = ["test_only"],
        implied_untracked_deps = [
            # This is a repository rule generated to define an OSS-Fuzz fuzzing
            # engine target from the CFLAGS/CXXFLAGS environment.
            "rules_fuzzing_oss_fuzz",
        ],
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_fuzzing/blob/v{version}/LICENSE",
    ),
    boringssl = dict(
        project_name = "BoringSSL",
        project_desc = "Minimal OpenSSL fork",
        project_url = "https://github.com/google/boringssl",
        # To update BoringSSL, which tracks Chromium releases:
        # 1. Open https://chromiumdash.appspot.com/releases?platform=Linux and find the latest Stable release.
        # 2. In the info for that release, open the "Branch Base Commit" link, then open DEPS, and use the <boringssl_revision>.
        #
        # chromium-126.0.6478.55 (linux/stable)
        version = "2db0eb3f96a5756298dcd7f9319e56a98585bd10",
        sha256 = "cd240bf27450f75cd5f41c512a06297c00646cdbac9f87b604e9312771db15a6",
        strip_prefix = "boringssl-{version}",
        urls = ["https://github.com/google/boringssl/archive/{version}.tar.gz"],
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2024-04-29",
        cpe = "cpe:2.3:a:google:boringssl:*",
        license = "Mixed",
        license_url = "https://github.com/google/boringssl/blob/{version}/LICENSE",
    ),
    boringssl_fips = dict(
        project_name = "BoringSSL (FIPS)",
        project_desc = "FIPS compliant BoringSSL",
        project_url = "https://boringssl.googlesource.com/boringssl/+/master/crypto/fipsmodule/FIPS.md",
        # When this is updated to a revision newer than 2022-08-12,
        # CertValidatorUtil::setIgnoreCertificateExpiration can be simplified.
        #
        # !!! NOTE !!!
        # Anytime the FIPS BoringSSL version is upgraded, `bazel/external/boringssl_fips.genrule_cmd` must be updated to use the toolchain
        # specified in the associated accredidation certificate, which can be found linked from
        # https://boringssl.googlesource.com/boringssl/+/refs/heads/master/crypto/fipsmodule/FIPS.md, for example
        # https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4735.
        version = "fips-20220613",
        sha256 = "62f733289f2d677c2723f556aa58034c438f3a7bbca6c12b156538a88e38da8a",
        urls = ["https://commondatastorage.googleapis.com/chromium-boringssl-fips/boringssl-0c6f40132b828e92ba365c6b7680e32820c63fa7.tar.xz"],
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2022-06-13",
        cpe = "cpe:2.3:a:google:boringssl:*",
    ),
    aspect_bazel_lib = dict(
        project_name = "Aspect Bazel helpers",
        project_desc = "Base Starlark libraries and basic Bazel rules which are useful for constructing rulesets and BUILD files",
        project_url = "https://github.com/aspect-build/bazel-lib",
        version = "2.9.0",
        sha256 = "04299d5460ef8ed92f1251d468a3c1ce746f9f3003047c728383c42048950cb5",
        strip_prefix = "bazel-lib-{version}",
        urls = ["https://github.com/aspect-build/bazel-lib/archive/v{version}.tar.gz"],
        use_category = ["build"],
        release_date = "2024-09-19",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/aspect-build/bazel-lib/blob/v{version}/LICENSE",
    ),
    com_google_absl = dict(
        project_name = "Abseil",
        project_desc = "Open source collection of C++ libraries drawn from the most fundamental pieces of Google’s internal codebase",
        project_url = "https://abseil.io/",
        version = "20230802.1",
        sha256 = "987ce98f02eefbaf930d6e38ab16aa05737234d7afbab2d5c4ea7adbe50c28ed",
        strip_prefix = "abseil-cpp-{version}",
        urls = ["https://github.com/abseil/abseil-cpp/archive/{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2023-09-18",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/abseil/abseil-cpp/blob/{version}/LICENSE",
    ),
    com_github_aignas_rules_shellcheck = dict(
        project_name = "Shellcheck rules for bazel",
        project_desc = "Now you do not need to depend on the system shellcheck version in your bazel-managed (mono)repos.",
        project_url = "https://github.com/aignas/rules_shellcheck",
        version = "0.3.3",
        sha256 = "936ece8097b734ac7fab10f833a68f7d646b4bc760eb5cde3ab17beb85779d50",
        strip_prefix = "rules_shellcheck-{version}",
        urls = ["https://github.com/aignas/rules_shellcheck/archive/{version}.tar.gz"],
        release_date = "2024-02-15",
        use_category = ["build"],
        cpe = "N/A",
        license = "MIT",
        license_url = "https://github.com/aignas/rules_shellcheck/blob/v{version}/LICENSE",
    ),
    com_github_axboe_liburing = dict(
        project_name = "liburing",
        project_desc = "C helpers to set up and tear down io_uring instances",
        project_url = "https://github.com/axboe/liburing",
        version = "2.7",
        sha256 = "56202ad443c50e684dde3692819be3b91bbe003e1c14bf5abfa11973669978c1",
        strip_prefix = "liburing-liburing-{version}",
        urls = ["https://github.com/axboe/liburing/archive/liburing-{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2024-08-16",
        cpe = "N/A",
    ),
    # This dependency is built only when performance tracing is enabled with the
    # option --define=perf_tracing=enabled. It's never built for releases.
    com_github_google_perfetto = dict(
        project_name = "Perfetto",
        project_desc = "Perfetto Tracing SDK",
        project_url = "https://perfetto.dev/",
        version = "47.0",
        sha256 = "9bbd38a0f074038bde6ccbcf5f2ff32587eb60faec254932268ecb6f17f18186",
        strip_prefix = "perfetto-{version}/sdk",
        urls = ["https://github.com/google/perfetto/archive/v{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2024-08-07",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/google/perfetto/blob/v{version}/LICENSE",
    ),
    com_github_c_ares_c_ares = dict(
        project_name = "c-ares",
        project_desc = "C library for asynchronous DNS requests",
        project_url = "https://c-ares.haxx.se/",
        version = "1.21.0",
        sha256 = "cd7aa3af1d3ee780d6437039a7ddb7f1ec029f9c4f7aabb0197e384eb5bc2f2d",
        strip_prefix = "c-ares-{version}",
        urls = ["https://github.com/c-ares/c-ares/releases/download/cares-{underscore_version}/c-ares-{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2023-10-27",
        cpe = "cpe:2.3:a:c-ares_project:c-ares:*",
        license = "c-ares",
        license_url = "https://github.com/c-ares/c-ares/blob/cares-{underscore_version}/LICENSE.md",
    ),
    com_github_openhistogram_libcircllhist = dict(
        project_name = "libcircllhist",
        project_desc = "An implementation of OpenHistogram log-linear histograms",
        project_url = "https://github.com/openhistogram/libcircllhist",
        version = "39f9db724a81ba78f5d037f1cae79c5a07107c8e",
        sha256 = "fd2492f6cc1f8734f8f57be8c2e7f2907e94ee2a4c02445ce59c4241fece144b",
        strip_prefix = "libcircllhist-{version}",
        urls = ["https://github.com/openhistogram/libcircllhist/archive/{version}.tar.gz"],
        use_category = ["controlplane", "observability_core", "dataplane_core"],
        release_date = "2019-05-21",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/openhistogram/libcircllhist/blob/{version}/LICENSE",
    ),
    com_github_cyan4973_xxhash = dict(
        project_name = "xxHash",
        project_desc = "Extremely fast hash algorithm",
        project_url = "https://github.com/Cyan4973/xxHash",
        version = "0.8.2",
        sha256 = "baee0c6afd4f03165de7a4e67988d16f0f2b257b51d0e3cb91909302a26a79c4",
        strip_prefix = "xxHash-{version}",
        urls = ["https://github.com/Cyan4973/xxHash/archive/v{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2023-07-21",
        cpe = "N/A",
        license = "BSD-2-Clause",
        license_url = "https://github.com/Cyan4973/xxHash/blob/v{version}/LICENSE",
    ),
    com_github_envoyproxy_sqlparser = dict(
        project_name = "C++ SQL Parser Library",
        project_desc = "Forked from Hyrise SQL Parser",
        project_url = "https://github.com/envoyproxy/sql-parser",
        version = "3b40ba2d106587bdf053a292f7e3bb17e818a57f",
        sha256 = "96c10c8e950a141a32034f19b19cdeb1da48fe859cf96ae5e19f894f36c62c71",
        strip_prefix = "sql-parser-{version}",
        urls = ["https://github.com/envoyproxy/sql-parser/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.filters.network.mysql_proxy",
            "envoy.filters.network.postgres_proxy",
        ],
        release_date = "2020-06-10",
        cpe = "N/A",
        license = "MIT",
        license_url = "https://github.com/envoyproxy/sql-parser/blob/{version}/LICENSE",
    ),
    com_github_mirror_tclap = dict(
        project_name = "tclap",
        project_desc = "Small, flexible library that provides a simple interface for defining and accessing command line arguments",
        project_url = "http://tclap.sourceforge.net",
        version = "1.2.5",
        sha256 = "7e87d13734076fa4f626f6144ce9a02717198b3f054341a6886e2107b048b235",
        strip_prefix = "tclap-{version}",
        urls = ["https://github.com/mirror/tclap/archive/v{version}.tar.gz"],
        release_date = "2021-11-01",
        use_category = ["other"],
        cpe = "cpe:2.3:a:tclap_project:tclap:*",
        license = "MIT",
        license_url = "https://github.com/mirror/tclap/blob/v{version}/COPYING",
    ),
    com_github_fmtlib_fmt = dict(
        project_name = "fmt",
        project_desc = "{fmt} is an open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams",
        project_url = "https://fmt.dev",
        version = "11.0.2",
        sha256 = "40fc58bebcf38c759e11a7bd8fdc163507d2423ef5058bba7f26280c5b9c5465",
        strip_prefix = "fmt-{version}",
        urls = ["https://github.com/fmtlib/fmt/releases/download/{version}/fmt-{version}.zip"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2024-07-20",
        cpe = "cpe:2.3:a:fmt:fmt:*",
        license = "fmt",
        license_url = "https://github.com/fmtlib/fmt/blob/{version}/LICENSE.rst",
    ),
    com_github_gabime_spdlog = dict(
        project_name = "spdlog",
        project_desc = "Very fast, header-only/compiled, C++ logging library",
        project_url = "https://github.com/gabime/spdlog",
        version = "1.14.1",
        sha256 = "1586508029a7d0670dfcb2d97575dcdc242d3868a259742b69f100801ab4e16b",
        strip_prefix = "spdlog-{version}",
        urls = ["https://github.com/gabime/spdlog/archive/v{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2024-04-30",
        cpe = "N/A",
        license = "MIT",
        license_url = "https://github.com/gabime/spdlog/blob/v{version}/LICENSE",
    ),
    com_github_google_libprotobuf_mutator = dict(
        project_name = "libprotobuf-mutator",
        project_desc = "Library to randomly mutate protobuffers",
        project_url = "https://github.com/google/libprotobuf-mutator",
        version = "3b28530531b154a748fe9884bc9219b4966f0754",
        sha256 = "21bfdfef25554fa2e30aec2a9f9b58f4a17c1d8c8593763fa94a6dd74b226594",
        strip_prefix = "libprotobuf-mutator-{version}",
        urls = ["https://github.com/google/libprotobuf-mutator/archive/{version}.tar.gz"],
        release_date = "2023-04-25",
        use_category = ["test_only"],
        license = "Apache-2.0",
        license_url = "https://github.com/google/libprotobuf-mutator/blob/v{version}/LICENSE",
    ),
    com_github_google_libsxg = dict(
        project_name = "libsxg",
        project_desc = "Signed HTTP Exchange library",
        project_url = "https://github.com/google/libsxg",
        version = "beaa3939b76f8644f6833267e9f2462760838f18",
        sha256 = "082bf844047a9aeec0d388283d5edc68bd22bcf4d32eb5a566654ae89956ad1f",
        strip_prefix = "libsxg-{version}",
        urls = ["https://github.com/google/libsxg/archive/{version}.tar.gz"],
        use_category = ["other"],
        extensions = ["envoy.filters.http.sxg"],
        release_date = "2021-07-08",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/google/libsxg/blob/{version}/LICENSE",
    ),
    com_github_google_tcmalloc = dict(
        project_name = "tcmalloc",
        project_desc = "Fast, multi-threaded malloc implementation",
        project_url = "https://github.com/google/tcmalloc",
        version = "e33c7bc60415127c104006d3301c96902f98d42a",
        sha256 = "14a2c91b71d6719558768a79671408c9acd8284b418e80386c5888047e2c15aa",
        strip_prefix = "tcmalloc-{version}",
        urls = ["https://github.com/google/tcmalloc/archive/{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2022-10-24",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/google/tcmalloc/blob/{version}/LICENSE",
    ),
    com_github_gperftools_gperftools = dict(
        project_name = "gperftools",
        project_desc = "tcmalloc and profiling libraries",
        project_url = "https://github.com/gperftools/gperftools",
        version = "2.10",
        sha256 = "83e3bfdd28b8bcf53222c3798d4d395d52dadbbae59e8730c4a6d31a9c3732d8",
        strip_prefix = "gperftools-{version}",
        urls = ["https://github.com/gperftools/gperftools/releases/download/gperftools-{version}/gperftools-{version}.tar.gz"],
        release_date = "2022-05-31",
        use_category = ["dataplane_core", "controlplane"],
        cpe = "cpe:2.3:a:gperftools_project:gperftools:*",
        license = "BSD-3-Clause",
        license_url = "https://github.com/gperftools/gperftools/blob/gperftools-{version}/COPYING",
    ),
    com_github_grpc_grpc = dict(
        project_name = "gRPC",
        project_desc = "gRPC C core library",
        project_url = "https://grpc.io",
        version = "1.62.1",
        sha256 = "c9f9ae6e4d6f40464ee9958be4068087881ed6aa37e30d0e64d40ed7be39dd01",
        strip_prefix = "grpc-{version}",
        urls = ["https://github.com/grpc/grpc/archive/v{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2024-03-08",
        cpe = "cpe:2.3:a:grpc:grpc:*",
        license = "Apache-2.0",
        license_url = "https://github.com/grpc/grpc/blob/v{version}/LICENSE",
    ),
    rules_proto_grpc = dict(
        project_name = "Protobuf and gRPC rules for Bazel",
        project_desc = "Bazel rules for building Protobuf and gRPC code and libraries from proto_library targets",
        project_url = "https://github.com/rules-proto-grpc/rules_proto_grpc",
        version = "4.6.0",
        sha256 = "2a0860a336ae836b54671cbbe0710eec17c64ef70c4c5a88ccfd47ea6e3739bd",
        strip_prefix = "rules_proto_grpc-{version}",
        urls = ["https://github.com/rules-proto-grpc/rules_proto_grpc/releases/download/{version}/rules_proto_grpc-{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.transport_sockets.alts"],
        release_date = "2023-12-14",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/rules-proto-grpc/rules_proto_grpc/blob/{version}/LICENSE",
    ),
    com_github_unicode_org_icu = dict(
        project_name = "ICU Library",
        project_desc = "Development files for International Components for Unicode",
        project_url = "https://github.com/unicode-org/icu",
        # When this is updated, make sure to update the icu.patch patch file and remove
        # all remaining Bazel build artifacts (for example WORKSPACE and BUILD.bazel files)
        # from the icu source code, to prevent Bazel from treating the foreign library
        # as a Bazel project.
        # https://github.com/envoyproxy/envoy/issues/26395
        version = "72-1",
        sha256 = "43cbad628d98f37a3f95f6c34579f9144ef4bde60248fa6004a4f006d7487e69",
        strip_prefix = "icu-release-{version}",
        urls = ["https://github.com/unicode-org/icu/archive/release-{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.http.language"],
        release_date = "2022-10-18",
        cpe = "N/A",
        license = "ICU",
        license_url = "https://github.com/unicode-org/icu/blob/release-{version}/icu4c/LICENSE",
    ),
    com_github_intel_ipp_crypto_crypto_mb = dict(
        project_name = "libipp-crypto",
        project_desc = "Intel® Integrated Performance Primitives Cryptography",
        project_url = "https://github.com/intel/ipp-crypto",
        version = "2021.11.1",
        sha256 = "d785fd8d5245ada79068588e5cc4d721d35c50e7d26fc268306f4aaae28ec6d6",
        strip_prefix = "ipp-crypto-ippcp_{version}",
        urls = ["https://github.com/intel/ipp-crypto/archive/ippcp_{version}.tar.gz"],
        release_date = "2024-02-28",
        use_category = ["dataplane_ext"],
        extensions = ["envoy.tls.key_providers.cryptomb"],
        cpe = "cpe:2.3:a:intel:cryptography_for_intel_integrated_performance_primitives:*",
        license = "Apache-2.0",
        license_url = "https://github.com/intel/ipp-crypto/blob/ippcp_{version}/LICENSE",
    ),
    com_github_intel_qatlib = dict(
        project_name = "qatlib",
        project_desc = "Intel QuickAssist Technology Library",
        project_url = "https://github.com/intel/qatlib",
        version = "24.02.0",
        sha256 = "ffef9a3a2bd6024b188977411944ec6267da34d40a0c6c1d42c4f59165991176",
        strip_prefix = "qatlib-{version}",
        urls = ["https://github.com/intel/qatlib/archive/refs/tags/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        release_date = "2024-02-20",
        extensions = ["envoy.tls.key_providers.qat", "envoy.compression.qatzip.compressor", "envoy.compression.qatzstd.compressor"],
        cpe = "N/A",
        license = "BSD-3-Clause",
        license_url = "https://github.com/intel/qatlib/blob/{version}/LICENSE",
    ),
    com_github_intel_qatzip = dict(
        project_name = "qatzip",
        project_desc = "Intel QuickAssist Technology QATzip Library",
        project_url = "https://github.com/intel/qatzip",
        version = "1.2.0",
        sha256 = "345a37a7e5b70635cadf9b9e581a9affec09e837ac1abac04d38355b672b3304",
        strip_prefix = "QATzip-{version}",
        urls = ["https://github.com/intel/QATzip/archive/v{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        release_date = "2024-02-08",
        extensions = ["envoy.compression.qatzip.compressor"],
        cpe = "N/A",
        license = "BSD-3-Clause",
        license_url = "https://github.com/intel/QATzip/blob/v{version}/LICENSE",
    ),
    com_github_qat_zstd = dict(
        project_name = "QAT-ZSTD-Plugin",
        project_desc = "Intel® QuickAssist Technology ZSTD Plugin (QAT ZSTD Plugin)",
        project_url = "https://github.com/intel/QAT-ZSTD-Plugin/",
        version = "0.2.0",
        sha256 = "e42e2ac9aeb01d812f9a3156b3b85df6ee29670a5968b9d231b0139fba97f287",
        strip_prefix = "QAT-ZSTD-Plugin-{version}",
        urls = ["https://github.com/intel/QAT-ZSTD-Plugin/archive/refs/tags/v{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.compression.qatzstd.compressor",
        ],
        release_date = "2024-08-26",
        cpe = "N/A",
    ),
    com_github_luajit_luajit = dict(
        project_name = "LuaJIT",
        project_desc = "Just-In-Time compiler for Lua",
        project_url = "https://luajit.org",
        # LuaJIT only provides rolling releases
        version = "d06beb0480c5d1eb53b3343e78063950275aa281",
        sha256 = "6abd146a1dfa240a965748f63221633446affa2a715e3eb03879136e3efb95f4",
        strip_prefix = "LuaJIT-{version}",
        urls = ["https://github.com/LuaJIT/LuaJIT/archive/{version}.tar.gz"],
        release_date = "2024-03-10",
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.filters.http.lua",
            "envoy.router.cluster_specifier_plugin.lua",
            "envoy.string_matcher.lua",
        ],
        cpe = "cpe:2.3:a:luajit:luajit:*",
        license = "MIT",
        license_url = "https://github.com/LuaJIT/LuaJIT/blob/{version}/COPYRIGHT",
    ),
    com_github_nghttp2_nghttp2 = dict(
        project_name = "Nghttp2",
        project_desc = "Implementation of HTTP/2 and its header compression algorithm HPACK in C",
        project_url = "https://nghttp2.org",
        version = "1.63.0",
        sha256 = "9318a2cc00238f5dd6546212109fb833f977661321a2087f03034e25444d3dbb",
        strip_prefix = "nghttp2-{version}",
        urls = ["https://github.com/nghttp2/nghttp2/releases/download/v{version}/nghttp2-{version}.tar.gz"],
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2024-08-27",
        cpe = "cpe:2.3:a:nghttp2:nghttp2:*",
        license = "MIT",
        license_url = "https://github.com/nghttp2/nghttp2/blob/v{version}/LICENSE",
    ),
    io_hyperscan = dict(
        project_name = "Hyperscan",
        project_desc = "High-performance regular expression matching library",
        project_url = "https://hyperscan.io",
        version = "5.4.2",
        sha256 = "32b0f24b3113bbc46b6bfaa05cf7cf45840b6b59333d078cc1f624e4c40b2b99",
        strip_prefix = "hyperscan-{version}",
        urls = ["https://github.com/intel/hyperscan/archive/v{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.matching.input_matchers.hyperscan",
            "envoy.regex_engines.hyperscan",
        ],
        release_date = "2023-04-19",
        cpe = "N/A",
        license = "BSD-3-Clause",
        license_url = "https://github.com/intel/hyperscan/blob/v{version}/LICENSE",
    ),
    io_vectorscan = dict(
        project_name = "Vectorscan",
        project_desc = "Hyperscan port for additional CPU architectures",
        project_url = "https://www.vectorcamp.gr/vectorscan/",
        version = "5.4.11",
        sha256 = "905f76ad1fa9e4ae0eb28232cac98afdb96c479666202c5a4c27871fb30a2711",
        strip_prefix = "vectorscan-vectorscan-{version}",
        urls = ["https://codeload.github.com/VectorCamp/vectorscan/tar.gz/refs/tags/vectorscan/{version}"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.matching.input_matchers.hyperscan",
            "envoy.regex_engines.hyperscan",
        ],
        release_date = "2023-11-20",
        cpe = "N/A",
        license = "BSD-3-Clause",
        license_url = "https://github.com/VectorCamp/vectorscan/blob/vectorscan/{version}/LICENSE",
    ),
    io_opentelemetry_cpp = dict(
        project_name = "OpenTelemetry",
        project_desc = "Observability framework and toolkit designed to create and manage telemetry data such as traces, metrics, and logs.",
        project_url = "https://opentelemetry.io",
        version = "1.16.1",
        sha256 = "b8a78bb2a3a78133dbb08bcd04342f4b1e03cb4a19079b8416d408d905fffc37",
        strip_prefix = "opentelemetry-cpp-{version}",
        urls = ["https://github.com/open-telemetry/opentelemetry-cpp/archive/refs/tags/v{version}.tar.gz"],
        use_category = ["observability_ext"],
        extensions = [
            "envoy.tracers.opentelemetry",
            "envoy.tracers.opentelemetry.samplers.always_on",
            "envoy.tracers.opentelemetry.samplers.dynatrace",
        ],
        release_date = "2024-07-17",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/open-telemetry/opentelemetry-cpp/blob/v{version}/LICENSE",
    ),
    skywalking_data_collect_protocol = dict(
        project_name = "skywalking-data-collect-protocol",
        project_desc = "Data Collect Protocols of Apache SkyWalking",
        project_url = "https://github.com/apache/skywalking-data-collect-protocol",
        sha256 = "49bd689b9c1c0ea12064bd35581689cef7835e5ac15d335dc425fbfc2029aa90",
        urls = ["https://github.com/apache/skywalking-data-collect-protocol/archive/v{version}.tar.gz"],
        strip_prefix = "skywalking-data-collect-protocol-{version}",
        version = "8.9.1",
        use_category = ["observability_ext"],
        extensions = ["envoy.tracers.skywalking"],
        release_date = "2021-12-11",
        cpe = "cpe:2.3:a:apache:skywalking:*",
        license = "Apache-2.0",
    ),
    com_github_skyapm_cpp2sky = dict(
        project_name = "cpp2sky",
        project_desc = "C++ SDK for Apache SkyWalking",
        project_url = "https://github.com/SkyAPM/cpp2sky",
        sha256 = "d7e52f517de5a1dc7d927dd63a2e5aa5cf8c2dcfd8fcf6b64e179978daf1c3ed",
        version = "0.6.0",
        strip_prefix = "cpp2sky-{version}",
        urls = ["https://github.com/SkyAPM/cpp2sky/archive/v{version}.tar.gz"],
        use_category = ["observability_ext"],
        extensions = ["envoy.tracers.skywalking"],
        release_date = "2024-08-21",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/SkyAPM/cpp2sky/blob/v{version}/LICENSE",
    ),
    com_github_datadog_dd_trace_cpp = dict(
        project_name = "Datadog C++ Tracing Library",
        project_desc = "Datadog distributed tracing for C++",
        project_url = "https://github.com/DataDog/dd-trace-cpp",
        version = "0.2.2",
        sha256 = "ee524a9b70d39dcfd815b90d9d6fc5599db7989dff072980bff90bae81c4daf7",
        strip_prefix = "dd-trace-cpp-{version}",
        urls = ["https://github.com/DataDog/dd-trace-cpp/archive/v{version}.tar.gz"],
        use_category = ["observability_ext"],
        extensions = ["envoy.tracers.datadog"],
        release_date = "2024-06-21",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/DataDog/dd-trace-cpp/blob/v{version}/LICENSE.md",
    ),
    com_github_google_benchmark = dict(
        project_name = "Benchmark",
        project_desc = "Library to benchmark code snippets",
        project_url = "https://github.com/google/benchmark",
        version = "1.9.0",
        sha256 = "35a77f46cc782b16fac8d3b107fbfbb37dcd645f7c28eee19f3b8e0758b48994",
        strip_prefix = "benchmark-{version}",
        urls = ["https://github.com/google/benchmark/archive/v{version}.tar.gz"],
        use_category = ["test_only"],
        release_date = "2024-08-16",
        license = "Apache-2.0",
        license_url = "https://github.com/google/benchmark/blob/v{version}/LICENSE",
    ),
    com_github_libevent_libevent = dict(
        project_name = "libevent",
        project_desc = "Event notification library",
        project_url = "https://libevent.org",
        # This SHA includes the new "prepare" and "check" watchers, used for event loop performance
        # stats (see https://github.com/libevent/libevent/pull/793) and the fix for a race condition
        # in the watchers (see https://github.com/libevent/libevent/pull/802).
        # This also includes the fixes for https://github.com/libevent/libevent/issues/806
        # and https://github.com/envoyproxy/envoy-mobile/issues/215.
        # This also includes the fixes for Phantom events with EV_ET (see
        # https://github.com/libevent/libevent/issues/984).
        # This also includes the wepoll backend for Windows (see
        # https://github.com/libevent/libevent/pull/1006)
        # TODO(adip): Update to v2.2 when it is released.
        version = "62c152d9a7cd264b993dad730c4163c6ede2e0a3",
        sha256 = "4c80e5fe044ce5f8055b20a2f141ee32ec2614000f3e95d2aa81611a4c8f5213",
        strip_prefix = "libevent-{version}",
        urls = ["https://github.com/libevent/libevent/archive/{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2020-07-28",
        cpe = "cpe:2.3:a:libevent_project:libevent:*",
        license = "BSD-3-Clause",
        license_url = "https://github.com/libevent/libevent/blob/{version}/LICENSE",
    ),
    net_colm_open_source_colm = dict(
        project_name = "Colm",
        project_desc = "The Colm Programming Language",
        project_url = "https://www.colm.net/open-source/colm/",
        # The latest release version v0.14.7 prevents building statically (see
        # https://github.com/adrian-thurston/colm/issues/146). The latest SHA includes the fix (see
        # https://github.com/adrian-thurston/colm/commit/fc61ecb3a22b89864916ec538eaf04840e7dd6b5).
        # TODO(zhxie): Update to the next release version when it is released.
        version = "2d8ba76ddaf6634f285d0a81ee42d5ee77d084cf",
        sha256 = "0399e9bef7603a8f3d94acd0b0af6b5944cc3103e586734719379d3ec09620c0",
        strip_prefix = "colm-{version}",
        urls = ["https://github.com/adrian-thurston/colm/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.matching.input_matchers.hyperscan",
            "envoy.regex_engines.hyperscan",
        ],
        release_date = "2021-12-28",
        cpe = "N/A",
        license = "MIT",
        license_url = "https://github.com/adrian-thurston/colm/blob/{version}/COPYING",
    ),
    net_colm_open_source_ragel = dict(
        project_name = "Ragel",
        project_desc = "Ragel State Machine Compiler",
        project_url = "https://www.colm.net/open-source/ragel/",
        # We used the stable release Ragel 6.10 previously and it is under GPLv2 license (see
        # http://www.colm.net/open-source/ragel). Envoy uses its binary only as a tool for
        # compiling contrib extension Hyperscan. For copyright consideration, we update Ragel to
        # its development release which is under MIT license.
        # The latest release version v7.0.4 is not compatible with its dependency Colm we use. The
        # latest SHA includes fix for compatibility.
        # TODO(zhxie): Update to the next release version when it is released.
        version = "d4577c924451b331c73c8ed0af04f6efd35ac0b4",
        sha256 = "fa3474d50da9c870b79b51ad43f8d11cdf05268f5ec05a602ecd5b1b5f5febb0",
        strip_prefix = "ragel-{version}",
        urls = ["https://github.com/adrian-thurston/ragel/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.matching.input_matchers.hyperscan",
            "envoy.regex_engines.hyperscan",
        ],
        release_date = "2021-12-28",
        cpe = "N/A",
        license = "MIT",
        license_url = "https://github.com/adrian-thurston/ragel/blob/{version}/COPYING",
    ),
    # This should be removed, see https://github.com/envoyproxy/envoy/issues/13261.
    net_zlib = dict(
        project_name = "zlib",
        project_desc = "zlib compression library",
        project_url = "https://zlib.net",
        version = "1.2.13",
        sha256 = "1525952a0a567581792613a9723333d7f8cc20b87a81f920fb8bc7e3f2251428",
        strip_prefix = "zlib-{version}",
        urls = ["https://github.com/madler/zlib/archive/v{version}.tar.gz"],
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2022-10-14",
        cpe = "cpe:2.3:a:gnu:zlib:*",
        license = "zlib",
        license_url = "https://github.com/madler/zlib/blob/v{version}/zlib.h",
    ),
    org_boost = dict(
        project_name = "Boost",
        project_desc = "Boost C++ source libraries",
        project_url = "https://www.boost.org/",
        version = "1.84.0",
        sha256 = "a5800f405508f5df8114558ca9855d2640a2de8f0445f051fa1c7c3383045724",
        strip_prefix = "boost_{underscore_version}",
        urls = ["https://archives.boost.io/release/{version}/source/boost_{underscore_version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.matching.input_matchers.hyperscan",
            "envoy.regex_engines.hyperscan",
        ],
        release_date = "2023-12-13",
        cpe = "cpe:2.3:a:boost:boost:*",
        license = "Boost",
        license_url = "https://github.com/boostorg/boost/blob/boost-{version}/LICENSE_1_0.txt",
    ),
    org_brotli = dict(
        project_name = "brotli",
        project_desc = "brotli compression library",
        project_url = "https://brotli.org",
        version = "1.1.0",
        sha256 = "e720a6ca29428b803f4ad165371771f5398faba397edf6778837a18599ea13ff",
        strip_prefix = "brotli-{version}",
        urls = ["https://github.com/google/brotli/archive/v{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.compression.brotli.compressor",
            "envoy.compression.brotli.decompressor",
        ],
        release_date = "2023-08-31",
        cpe = "cpe:2.3:a:google:brotli:*",
        license = "MIT",
        license_url = "https://github.com/google/brotli/blob/v{version}/LICENSE",
    ),
    com_github_facebook_zstd = dict(
        project_name = "zstd",
        project_desc = "zstd compression library",
        project_url = "https://facebook.github.io/zstd",
        version = "1.5.6",
        sha256 = "30f35f71c1203369dc979ecde0400ffea93c27391bfd2ac5a9715d2173d92ff7",
        strip_prefix = "zstd-{version}",
        urls = ["https://github.com/facebook/zstd/archive/v{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.compression.zstd.compressor",
            "envoy.compression.zstd.decompressor",
        ],
        release_date = "2024-03-30",
        cpe = "cpe:2.3:a:facebook:zstandard:*",
    ),
    com_github_zlib_ng_zlib_ng = dict(
        project_name = "zlib-ng",
        project_desc = "zlib fork (higher performance)",
        project_url = "https://github.com/zlib-ng/zlib-ng",
        version = "2.0.7",
        sha256 = "6c0853bb27738b811f2b4d4af095323c3d5ce36ceed6b50e5f773204fb8f7200",
        strip_prefix = "zlib-ng-{version}",
        urls = ["https://github.com/zlib-ng/zlib-ng/archive/{version}.tar.gz"],
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2023-03-17",
        cpe = "N/A",
        license = "zlib",
        license_url = "https://github.com/zlib-ng/zlib-ng/blob/{version}/LICENSE.md",
    ),
    com_github_jbeder_yaml_cpp = dict(
        project_name = "yaml-cpp",
        project_desc = "YAML parser and emitter in C++ matching the YAML 1.2 spec",
        project_url = "https://github.com/jbeder/yaml-cpp",
        version = "0.8.0",
        sha256 = "fbe74bbdcee21d656715688706da3c8becfd946d92cd44705cc6098bb23b3a16",
        strip_prefix = "yaml-cpp-{version}",
        urls = ["https://github.com/jbeder/yaml-cpp/archive/{version}.tar.gz"],
        # YAML is also used for runtime as well as controlplane. It shouldn't appear on the
        # dataplane but we can't verify this automatically due to code structure today.
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2023-08-10",
        cpe = "cpe:2.3:a:yaml-cpp_project:yaml-cpp:*",
        license = "MIT",
        license_url = "https://github.com/jbeder/yaml-cpp/blob/{version}/LICENSE",
    ),
    com_github_msgpack_cpp = dict(
        project_name = "msgpack for C/C++",
        project_desc = "MessagePack is an efficient binary serialization format",
        project_url = "https://github.com/msgpack/msgpack-c",
        version = "6.1.0",
        sha256 = "23ede7e93c8efee343ad8c6514c28f3708207e5106af3b3e4969b3a9ed7039e7",
        strip_prefix = "msgpack-cxx-{version}",
        urls = ["https://github.com/msgpack/msgpack-c/releases/download/cpp-{version}/msgpack-cxx-{version}.tar.gz"],
        use_category = ["observability_ext"],
        extensions = ["envoy.access_loggers.fluentd"],
        release_date = "2023-07-08",
        cpe = "cpe:2.3:a:messagepack:messagepack:*",
        license = "Boost",
        license_url = "https://github.com/msgpack/msgpack-c/blob/cpp-{version}/LICENSE_1_0.txt",
    ),
    com_github_google_jwt_verify = dict(
        project_name = "jwt_verify_lib",
        project_desc = "JWT verification library for C++",
        project_url = "https://github.com/google/jwt_verify_lib",
        version = "b59e8075d4a4f975ba6f109e1916d6e60aeb5613",
        sha256 = "637e4983506c4f26bbe2808ae4e1944e46cbb2277d34ff0b8a3b72bdac3c4b91",
        strip_prefix = "jwt_verify_lib-{version}",
        urls = ["https://github.com/google/jwt_verify_lib/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.http.jwt_authn", "envoy.filters.http.gcp_authn", "envoy.filters.http.oauth2"],
        release_date = "2023-05-17",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/google/jwt_verify_lib/blob/{version}/LICENSE",
    ),
    com_github_alibaba_hessian2_codec = dict(
        project_name = "hessian2-codec",
        project_desc = "hessian2-codec is a C++ library for hessian2 codec",
        project_url = "https://github.com/alibaba/hessian2-codec.git",
        version = "e9bb36e206f2c5054b50d11f88bb1b95c77766f8",
        sha256 = "82743dcbf2bd624a68eb2c0d54963ea87446eba4eb08c117744f0669ddc70786",
        strip_prefix = "hessian2-codec-{version}",
        urls = ["https://github.com/alibaba/hessian2-codec/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.network.dubbo_proxy", "envoy.filters.network.generic_proxy", "envoy.generic_proxy.codecs.dubbo"],
        release_date = "2022-10-10",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/alibaba/hessian2-codec/blob/{version}/LICENSE",
    ),
    com_github_tencent_rapidjson = dict(
        project_name = "RapidJSON",
        project_desc = "Fast JSON parser/generator for C++",
        project_url = "https://rapidjson.org",
        version = "dfbe1db9da455552f7a9ad5d2aea17dd9d832ac1",
        sha256 = "a2faafbc402394df0fa94602df4b5e4befd734aad6bb55dfef46f62fcaf1090b",
        strip_prefix = "rapidjson-{version}",
        urls = ["https://github.com/Tencent/rapidjson/archive/{version}.tar.gz"],
        use_category = ["observability_ext"],
        # Rapidjson is used in the external dependency of zipkin tracer.
        extensions = ["envoy.tracers.zipkin", "envoy.tracers.opencensus"],
        release_date = "2019-12-03",
        cpe = "cpe:2.3:a:tencent:rapidjson:*",
        license = "RapidJSON",
        license_url = "https://github.com/Tencent/rapidjson/blob/{version}/license.txt",
    ),
    com_github_nlohmann_json = dict(
        project_name = "nlohmann JSON",
        project_desc = "Fast JSON parser/generator for C++",
        project_url = "https://nlohmann.github.io/json",
        version = "3.11.3",
        sha256 = "0d8ef5af7f9794e3263480193c491549b2ba6cc74bb018906202ada498a79406",
        strip_prefix = "json-{version}",
        urls = ["https://github.com/nlohmann/json/archive/v{version}.tar.gz"],
        # This will be a replacement for rapidJSON used in extensions and may also be a fast
        # replacement for protobuf JSON.
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2023-11-28",
        cpe = "cpe:2.3:a:json-for-modern-cpp_project:json-for-modern-cpp:*",
        license = "MIT",
        license_url = "https://github.com/nlohmann/json/blob/v{version}/LICENSE.MIT",
    ),
    # This is an external dependency needed while running the
    # envoy docker image. A bazel target has been created since
    # there is no binary package available for the utility on Ubuntu
    # which is the base image used to build an envoy container.
    # This is not needed to build an envoy binary or run tests.
    com_github_ncopa_suexec = dict(
        project_name = "su-exec",
        project_desc = "Utility to switch user and group id, setgroups and exec",
        project_url = "https://github.com/ncopa/su-exec",
        version = "212b75144bbc06722fbd7661f651390dc47a43d1",
        sha256 = "939782774079ec156788ea3e04dd5e340e993544f4296be76a9c595334ca1779",
        strip_prefix = "su-exec-{version}",
        urls = ["https://github.com/ncopa/su-exec/archive/{version}.tar.gz"],
        use_category = ["other"],
        release_date = "2019-09-18",
        cpe = "N/A",
        license = "MIT",
        license_url = "https://github.com/ncopa/su-exec/blob/{version}/LICENSE",
    ),
    com_google_googletest = dict(
        project_name = "Google Test",
        project_desc = "Google's C++ test framework",
        project_url = "https://github.com/google/googletest",
        # Pick up fix for MOCK_METHOD compilation with clang-cl for Windows (resolved after 1.10.0)
        # see https://github.com/google/googletest/issues/2490
        version = "a4ab0abb93620ce26efad9de9296b73b16e88588",
        sha256 = "7897bfaa5ad39a479177cfb5c3ce010184dbaee22a7c3727b212282871918751",
        strip_prefix = "googletest-{version}",
        urls = ["https://github.com/google/googletest/archive/{version}.tar.gz"],
        release_date = "2020-09-10",
        use_category = ["test_only"],
        cpe = "cpe:2.3:a:google:google_test:*",
        license = "BSD-3-Clause",
        license_url = "https://github.com/google/googletest/blob/{version}/LICENSE",
    ),
    com_google_protobuf = dict(
        project_name = "Protocol Buffers",
        project_desc = "Language-neutral, platform-neutral extensible mechanism for serializing structured data",
        project_url = "https://developers.google.com/protocol-buffers",
        version = PROTOBUF_VERSION,
        # When upgrading the protobuf library, please re-run
        # test/common/json:gen_excluded_unicodes to recompute the ranges
        # excluded from differential fuzzing that are populated in
        # test/common/json/json_sanitizer_test_util.cc.
        sha256 = "4fc5ff1b2c339fb86cd3a25f0b5311478ab081e65ad258c6789359cd84d421f8",
        strip_prefix = "protobuf-{version}",
        urls = ["https://github.com/protocolbuffers/protobuf/releases/download/v{version}/protobuf-{version}.tar.gz"],
        use_category = ["dataplane_core", "controlplane"],
        release_date = "2024-03-27",
        cpe = "cpe:2.3:a:google:protobuf:*",
        license = "Protocol Buffers",
        license_url = "https://github.com/protocolbuffers/protobuf/blob/v{version}/LICENSE",
    ),
    grpc_httpjson_transcoding = dict(
        project_name = "grpc-httpjson-transcoding",
        project_desc = "Library that supports transcoding so that HTTP/JSON can be converted to gRPC",
        project_url = "https://github.com/grpc-ecosystem/grpc-httpjson-transcoding",
        version = "8f0d092ecf60470f504f506e2851173a8033a62c",
        sha256 = "11f6316192c5fbd967796e46ab2872964cb4f0a2396126c9e7b961295d4768af",
        strip_prefix = "grpc-httpjson-transcoding-{version}",
        urls = ["https://github.com/grpc-ecosystem/grpc-httpjson-transcoding/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.http.grpc_json_transcoder", "envoy.filters.http.grpc_field_extraction", "envoy.filters.http.proto_message_extraction"],
        release_date = "2024-09-19",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/grpc-ecosystem/grpc-httpjson-transcoding/blob/{version}/LICENSE",
    ),
    com_google_protoconverter = dict(
        project_name = "proto-converter",
        project_desc = "Library that supports the conversion between protobuf binary and json",
        project_url = "https://github.com/grpc-ecosystem/proto-converter",
        version = "1db76535b86b80aa97489a1edcc7009e18b67ab7",
        sha256 = "9555d9cf7bd541ea5fdb67d7d6b72ea44da77df3e27b960b4155dc0c6b81d476",
        strip_prefix = "proto-converter-{version}",
        urls = ["https://github.com/grpc-ecosystem/proto-converter/archive/{version}.zip"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.http.grpc_json_transcoder", "envoy.filters.http.grpc_field_extraction", "envoy.filters.http.proto_message_extraction"],
        release_date = "2024-06-25",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/grpc-ecosystem/proto-converter/blob/{version}/LICENSE",
    ),
    com_google_protofieldextraction = dict(
        project_name = "proto-field-extraction",
        project_desc = "Library that supports the extraction from protobuf binary",
        project_url = "https://github.com/grpc-ecosystem/proto-field-extraction",
        version = "d5d39f0373e9b6691c32c85929838b1006bcb3fb",
        sha256 = "cba864db90806515afa553aaa2fb3683df2859a7535e53a32cb9619da9cebc59",
        strip_prefix = "proto-field-extraction-{version}",
        urls = ["https://github.com/grpc-ecosystem/proto-field-extraction/archive/{version}.zip"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.http.grpc_json_transcoder", "envoy.filters.http.grpc_field_extraction", "envoy.filters.http.proto_message_extraction"],
        release_date = "2024-07-10",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/grpc-ecosystem/proto-field-extraction/blob/{version}/LICENSE",
    ),
    com_google_protoprocessinglib = dict(
        project_name = "proto_processing_lib",
        project_desc = "Library that provides utility functionality for proto field scrubbing",
        project_url = "https://github.com/grpc-ecosystem/proto_processing_lib",
        version = "968fd5e3c2278d0e0462b0c56574615711025502",
        sha256 = "e64cfa0a19cd126a7f045ee2752beb53b3ecb0174c376146f701ed560fae46b8",
        strip_prefix = "proto_processing_lib-{version}",
        urls = ["https://github.com/grpc-ecosystem/proto_processing_lib/archive/{version}.zip"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.http.grpc_json_transcoder", "envoy.filters.http.grpc_field_extraction", "envoy.filters.http.proto_message_extraction"],
        release_date = "2024-08-30",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/grpc-ecosystem/proto_processing_lib/blob/{version}/LICENSE",
    ),
    ocp = dict(
        project_name = "ocp",
        project_desc = "Libraries used in gRPC field extraction library",
        project_url = "https://github.com/opencomputeproject/ocp-diag-core",
        version = "e965ac0ac6db6686169678e2a6c77ede904fa82c",
        sha256 = "b83b8ea7a937ce7f5d6870421be8f9a5343e8c2de2bd2e269452981d67da1509",
        strip_prefix = "ocp-diag-core-{version}/apis/c++",
        urls = ["https://github.com/opencomputeproject/ocp-diag-core/archive/{version}.zip"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.http.grpc_field_extraction", "envoy.filters.http.proto_message_extraction"],
        release_date = "2023-05-05",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/opencomputeproject/ocp-diag-core/blob/{version}/LICENSE",
    ),
    io_bazel_rules_go = dict(
        project_name = "Go rules for Bazel",
        project_desc = "Bazel rules for the Go language",
        project_url = "https://github.com/bazelbuild/rules_go",
        version = "0.49.0",
        sha256 = "d93ef02f1e72c82d8bb3d5169519b36167b33cf68c252525e3b9d3d5dd143de7",
        urls = ["https://github.com/bazelbuild/rules_go/releases/download/v{version}/rules_go-v{version}.zip"],
        use_category = ["build", "api"],
        release_date = "2024-07-13",
        implied_untracked_deps = [
            "com_github_golang_protobuf",
            "io_bazel_rules_nogo",
            "org_golang_google_protobuf",
            "org_golang_x_tools",
        ],
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_go/blob/v{version}/LICENSE.txt",
    ),
    rules_foreign_cc = dict(
        project_name = "Rules for using foreign build systems in Bazel",
        project_desc = "Rules for using foreign build systems in Bazel",
        project_url = "https://github.com/bazelbuild/rules_foreign_cc",
        version = "0.12.0",
        sha256 = "a2e6fb56e649c1ee79703e99aa0c9d13c6cc53c8d7a0cbb8797ab2888bbc99a3",
        strip_prefix = "rules_foreign_cc-{version}",
        urls = ["https://github.com/bazelbuild/rules_foreign_cc/archive/{version}.tar.gz"],
        release_date = "2024-08-14",
        use_category = ["build", "dataplane_core", "controlplane"],
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_foreign_cc/blob/{version}/LICENSE",
    ),
    rules_python = dict(
        project_name = "Python rules for Bazel",
        project_desc = "Bazel rules for the Python language",
        project_url = "https://github.com/bazelbuild/rules_python",
        version = "0.32.2",
        sha256 = "4912ced70dc1a2a8e4b86cec233b192ca053e82bc72d877b98e126156e8f228d",
        release_date = "2024-05-14",
        strip_prefix = "rules_python-{version}",
        urls = ["https://github.com/bazelbuild/rules_python/archive/{version}.tar.gz"],
        use_category = ["build"],
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_python/blob/{version}/LICENSE",
    ),
    rules_ruby = dict(
        # This is needed only to compile protobuf, not used in Envoy code
        project_name = "Ruby rules for Bazel",
        project_desc = "Bazel rules for the Ruby language",
        project_url = "https://github.com/protocolbuffers/rules_ruby",
        version = "37cf5900d0b0e44fa379c0ea3f5fcee0035d77ca",
        sha256 = "24ed42b7e06907be993b21be603c130076c7d7e49d4f4d5bd228c5656a257f5e",
        release_date = "2023-01-12",
        strip_prefix = "rules_ruby-{version}",
        urls = ["https://github.com/protocolbuffers/rules_ruby/archive/{version}.tar.gz"],
        use_category = ["build"],
        license = "Apache-2.0",
        license_url = "https://github.com/protocolbuffers/rules_ruby/blob/{version}/LICENSE",
    ),
    rules_pkg = dict(
        project_name = "Packaging rules for Bazel",
        project_desc = "Bazel rules for the packaging distributions",
        project_url = "https://github.com/bazelbuild/rules_pkg",
        version = "1.0.1",
        sha256 = "23005750a27aabfd5975a3d5aeac9542371cbfa24d3ad74e47f80b84547754da",
        strip_prefix = "rules_pkg-{version}",
        urls = ["https://github.com/bazelbuild/rules_pkg/archive/{version}.tar.gz"],
        use_category = ["build"],
        release_date = "2024-07-09",
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_pkg/blob/{version}/LICENSE",
    ),
    com_github_wamr = dict(
        project_name = "Webassembly Micro Runtime",
        project_desc = "A standalone runtime with a small footprint for WebAssembly",
        project_url = "https://github.com/bytecodealliance/wasm-micro-runtime",
        version = "WAMR-2.0.0",
        sha256 = "7663a34b61d6d0ff90778d9be37efde92e2f28ec9baad89f7b18555f0db435ab",
        strip_prefix = "wasm-micro-runtime-{version}",
        urls = ["https://github.com/bytecodealliance/wasm-micro-runtime/archive/{version}.tar.gz"],
        release_date = "2024-04-23",
        use_category = ["dataplane_ext"],
        extensions = ["envoy.wasm.runtime.wamr"],
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/bytecodealliance/wasm-micro-runtime/blob/{version}/LICENSE",
    ),
    com_github_wasmtime = dict(
        project_name = "wasmtime",
        project_desc = "A standalone runtime for WebAssembly",
        project_url = "https://github.com/bytecodealliance/wasmtime",
        version = "9.0.3",
        sha256 = "917da461249b11a3176a39573723f78c627259576d0ca10b00d6e7f7fa047081",
        strip_prefix = "wasmtime-{version}",
        urls = ["https://github.com/bytecodealliance/wasmtime/archive/v{version}.tar.gz"],
        release_date = "2023-05-31",
        use_category = ["dataplane_ext"],
        extensions = ["envoy.wasm.runtime.wasmtime"],
        cpe = "cpe:2.3:a:bytecodealliance:wasmtime:*",
        license = "Apache-2.0",
        license_url = "https://github.com/bytecodealliance/wasmtime/blob/v{version}/LICENSE",
    ),
    com_github_wasm_c_api = dict(
        project_name = "wasm-c-api",
        project_desc = "WebAssembly C and C++ API",
        project_url = "https://github.com/WebAssembly/wasm-c-api",
        # this is the submodule's specific commit used by wasmtime
        # https://github.com/bytecodealliance/wasmtime/tree/v0.25.0/crates/c-api
        version = "c9d31284651b975f05ac27cee0bab1377560b87e",
        sha256 = "c774044f51431429e878bd1b9e2a4e38932f861f9211df72f75e9427eb6b8d32",
        strip_prefix = "wasm-c-api-{version}",
        urls = ["https://github.com/WebAssembly/wasm-c-api/archive/{version}.tar.gz"],
        release_date = "2021-01-11",
        use_category = ["dataplane_ext"],
        extensions = ["envoy.wasm.runtime.wasmtime"],
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/WebAssembly/wasm-c-api/blob/{version}/LICENSE",
    ),
    io_opencensus_cpp = dict(
        project_name = "OpenCensus C++",
        project_desc = "OpenCensus tracing library",
        project_url = "https://github.com/census-instrumentation/opencensus-cpp",
        version = "f68a2d0ea43eb61a4b7889f09987294c4f94d436",
        sha256 = "b5fd69da558d08480e254c7e2a91e23a88ec8b72d9aec1a6c2329d7560a61744",
        strip_prefix = "opencensus-cpp-{version}",
        urls = ["https://github.com/census-instrumentation/opencensus-cpp/archive/{version}.tar.gz"],
        use_category = ["observability_ext"],
        extensions = ["envoy.tracers.opencensus"],
        release_date = "2022-09-20",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/census-instrumentation/opencensus-cpp/blob/{version}/LICENSE",
    ),
    # Curl usage is under deprecation and will be removed by Q3 2024 before v1.31 release in July-2024.
    # See https://github.com/envoyproxy/envoy/issues/11816 & https://github.com/envoyproxy/envoy/pull/30731.
    com_github_curl = dict(
        project_name = "curl",
        project_desc = "Library for transferring data with URLs",
        project_url = "https://curl.haxx.se",
        version = "8.9.1",
        sha256 = "291124a007ee5111997825940b3876b3048f7d31e73e9caa681b80fe48b2dcd5",
        strip_prefix = "curl-{version}",
        urls = ["https://github.com/curl/curl/releases/download/curl-{underscore_version}/curl-{version}.tar.gz"],
        use_category = ["dataplane_ext", "observability_ext"],
        extensions = [
            "envoy.filters.http.aws_lambda",
            "envoy.filters.http.aws_request_signing",
            "envoy.grpc_credentials.aws_iam",
            "envoy.tracers.opencensus",
        ],
        release_date = "2024-07-31",
        cpe = "cpe:2.3:a:haxx:libcurl:*",
        license = "curl",
        license_url = "https://github.com/curl/curl/blob/curl-{underscore_version}/COPYING",
    ),
    v8 = dict(
        project_name = "V8",
        project_desc = "Google’s open source high-performance JavaScript and WebAssembly engine, written in C++",
        project_url = "https://v8.dev",
        # NOTE: Update together with com_googlesource_chromium_base_trace_event_common.
        # Patch contains workaround for https://github.com/bazelbuild/rules_python/issues/1221
        version = "10.7.193.13",
        # Static snapshot created using https://storage.googleapis.com/envoyproxy-wee8/wee8-fetch-deps.sh.
        sha256 = "2170df76ce5d7ecd7fb8d131370d210152f200273cba126f06d8b88fb53c9fbc",
        urls = ["https://storage.googleapis.com/envoyproxy-wee8/v8-{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.wasm.runtime.v8"],
        release_date = "2022-10-12",
        cpe = "cpe:2.3:a:google:v8:*",
    ),
    com_googlesource_chromium_base_trace_event_common = dict(
        project_name = "Chromium's trace event headers",
        project_desc = "Chromium's trace event headers",
        project_url = "https://chromium.googlesource.com/chromium/src/base/trace_event/common/",
        # NOTE: Update together with v8.
        # Use version and sha256 from https://storage.googleapis.com/envoyproxy-wee8/v8-<v8_version>-deps.sha256.
        version = "521ac34ebd795939c7e16b37d9d3ddb40e8ed556",
        # Static snapshot created using https://storage.googleapis.com/envoyproxy-wee8/wee8-fetch-deps.sh.
        sha256 = "d99726bd452d1dd6cd50ab33060774e8437d9f0fc6079589f657fe369c66ec09",
        urls = ["https://storage.googleapis.com/envoyproxy-wee8/chromium-base_trace_event_common-{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.wasm.runtime.v8"],
        release_date = "2022-10-12",
        cpe = "N/A",
    ),
    com_github_google_quiche = dict(
        project_name = "QUICHE",
        project_desc = "QUICHE (QUIC, HTTP/2, Etc) is Google‘s implementation of QUIC and related protocols",
        project_url = "https://github.com/google/quiche",
        version = "42b2e66c721f442bb439b40a1e037897360cf1b2",
        sha256 = "f72f78d7fa57154ad302d559fee6b72e0695d51391684891ec991b2b5d90491f",
        urls = ["https://github.com/google/quiche/archive/{version}.tar.gz"],
        strip_prefix = "quiche-{version}",
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2024-09-17",
        cpe = "N/A",
        license = "BSD-3-Clause",
        license_url = "https://github.com/google/quiche/blob/{version}/LICENSE",
    ),
    com_googlesource_googleurl = dict(
        project_name = "Chrome URL parsing library",
        project_desc = "Chrome URL parsing library",
        project_url = "https://quiche.googlesource.com/googleurl",
        # Static snapshot of https://quiche.googlesource.com/googleurl/+archive/dd4080fec0b443296c0ed0036e1e776df8813aa7.tar.gz
        version = "dd4080fec0b443296c0ed0036e1e776df8813aa7",
        sha256 = "59f14d4fb373083b9dc8d389f16bbb817b5f936d1d436aa67e16eb6936028a51",
        urls = ["https://storage.googleapis.com/quiche-envoy-integration/{version}.tar.gz"],
        use_category = ["controlplane", "dataplane_core"],
        extensions = [],
        release_date = "2022-11-03",
        cpe = "N/A",
        license = "googleurl",
        license_url = "https://quiche.googlesource.com/googleurl/+/{version}/LICENSE",
    ),
    com_google_cel_cpp = dict(
        project_name = "Common Expression Language (CEL) C++ library",
        project_desc = "Common Expression Language (CEL) C++ library",
        project_url = "https://opensource.google/projects/cel",
        version = "0abd738f9f54388452e6ebb0955eb039f9162b3d",
        sha256 = "d163805320a782c5194b7496cdd5e8c9d9604eeffc1e531770cf6b130bc182fd",
        strip_prefix = "cel-cpp-{version}",
        urls = ["https://github.com/google/cel-cpp/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.access_loggers.extension_filters.cel",
            "envoy.access_loggers.wasm",
            "envoy.bootstrap.wasm",
            "envoy.rate_limit_descriptors.expr",
            "envoy.filters.http.ext_proc",
            "envoy.filters.http.rate_limit_quota",
            "envoy.filters.http.rbac",
            "envoy.filters.http.wasm",
            "envoy.filters.network.rbac",
            "envoy.filters.network.wasm",
            "envoy.stat_sinks.wasm",
            "envoy.rbac.matchers.upstream_ip_port",
            "envoy.formatter.cel",
            "envoy.matching.inputs.cel_data_input",
            "envoy.matching.matchers.cel_matcher",
        ],
        release_date = "2023-12-20",
        cpe = "N/A",
    ),
    com_github_google_flatbuffers = dict(
        project_name = "FlatBuffers",
        project_desc = "FlatBuffers is a cross platform serialization library architected for maximum memory efficiency",
        project_url = "https://github.com/google/flatbuffers",
        version = "24.3.25",
        sha256 = "4157c5cacdb59737c5d627e47ac26b140e9ee28b1102f812b36068aab728c1ed",
        strip_prefix = "flatbuffers-{version}",
        urls = ["https://github.com/google/flatbuffers/archive/v{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.access_loggers.extension_filters.cel",
            "envoy.access_loggers.wasm",
            "envoy.formatter.cel",
            "envoy.bootstrap.wasm",
            "envoy.rate_limit_descriptors.expr",
            "envoy.filters.http.ext_proc",
            "envoy.filters.http.rate_limit_quota",
            "envoy.filters.http.rbac",
            "envoy.filters.http.wasm",
            "envoy.filters.network.rbac",
            "envoy.filters.network.wasm",
            "envoy.stat_sinks.wasm",
            "envoy.rbac.matchers.upstream_ip_port",
            "envoy.matching.inputs.cel_data_input",
            "envoy.matching.matchers.cel_matcher",
        ],
        release_date = "2024-03-26",
        cpe = "cpe:2.3:a:google:flatbuffers:*",
        license = "Apache-2.0",
        license_url = "https://github.com/google/flatbuffers/blob/v{version}/LICENSE",
    ),
    com_googlesource_code_re2 = dict(
        project_name = "RE2",
        project_desc = "RE2, a regular expression library",
        project_url = "https://github.com/google/re2",
        version = "2023-11-01",
        sha256 = "4e6593ac3c71de1c0f322735bc8b0492a72f66ffccfad76e259fa21c41d27d8a",
        strip_prefix = "re2-{version}",
        urls = ["https://github.com/google/re2/archive/{version}.tar.gz"],
        use_category = ["controlplane", "dataplane_core"],
        release_date = "2023-10-31",
        cpe = "N/A",
        license = "BSD-3-Clause",
        license_url = "https://github.com/google/re2/blob/{version}/LICENSE",
    ),
    # Included to access FuzzedDataProvider.h. This is compiler agnostic but
    # provided as part of the compiler-rt source distribution. We can't use the
    # Clang variant as we are not a Clang-LLVM only shop today.
    org_llvm_releases_compiler_rt = dict(
        project_name = "compiler-rt",
        project_desc = "LLVM compiler runtime library",
        project_url = "https://compiler-rt.llvm.org",
        # Note: the llvm/clang version should match the version specified in:
        #  - .github/workflows/codeql-daily.yml
        #  - .github/workflows/codeql-push.yml
        #  - https://github.com/envoyproxy/envoy-build-tools/blob/main/build_container/build_container_ubuntu.sh#L84
        version = "14.0.0",
        sha256 = "27ab7fcfb21d108093c0be766a9ed5fe18c04e4f74f936069711a312c8ae0377",
        # Only allow peeking at fuzzer related files for now.
        strip_prefix = "compiler-rt-{version}.src",
        urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/compiler-rt-{version}.src.tar.xz"],
        release_date = "2022-03-23",
        use_category = ["test_only"],
        cpe = "cpe:2.3:a:llvm:compiler-rt:*",
        license = "Apache-2.0",
        license_url = "https://github.com/llvm/llvm-project/blob/llvmorg-{version}/compiler-rt/LICENSE.TXT",
    ),
    kafka_source = dict(
        project_name = "Kafka (source)",
        project_desc = "Open-source distributed event streaming platform",
        project_url = "https://kafka.apache.org",
        version = "3.8.0",
        sha256 = "8761a0c22738201d3049f11f78c8e6c0f201203ba799157e498ef7eb04c259f3",
        strip_prefix = "kafka-{version}/clients/src/main/resources/common/message",
        urls = ["https://github.com/apache/kafka/archive/{version}.zip"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.network.kafka_broker", "envoy.filters.network.kafka_mesh"],
        release_date = "2024-07-23",
        cpe = "cpe:2.3:a:apache:kafka:*",
        license = "Apache-2.0",
        license_url = "https://github.com/apache/kafka/blob/{version}/LICENSE",
    ),
    confluentinc_librdkafka = dict(
        project_name = "Kafka (C/C++ client)",
        project_desc = "C/C++ client for Apache Kafka (open-source distributed event streaming platform)",
        project_url = "https://github.com/confluentinc/librdkafka",
        version = "2.3.0",
        sha256 = "2d49c35c77eeb3d42fa61c43757fcbb6a206daa560247154e60642bcdcc14d12",
        strip_prefix = "librdkafka-{version}",
        urls = ["https://github.com/confluentinc/librdkafka/archive/v{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.filters.network.kafka_mesh"],
        release_date = "2023-10-25",
        cpe = "N/A",
        license = "librdkafka",
        license_url = "https://github.com/confluentinc/librdkafka/blob/v{version}/LICENSE",
    ),
    kafka_server_binary = dict(
        project_name = "Kafka (server binary)",
        project_desc = "Open-source distributed event streaming platform",
        project_url = "https://kafka.apache.org",
        version = "3.8.0",
        sha256 = "e0297cc6fdb09ef9d9905751b25d2b629c17528f8629b60561eeff87ce29099c",
        strip_prefix = "kafka_2.13-{version}",
        urls = ["https://archive.apache.org/dist/kafka/{version}/kafka_2.13-{version}.tgz"],
        release_date = "2024-07-23",
        use_category = ["test_only"],
    ),
    proxy_wasm_cpp_sdk = dict(
        project_name = "WebAssembly for Proxies (C++ SDK)",
        project_desc = "WebAssembly for Proxies (C++ SDK)",
        project_url = "https://github.com/proxy-wasm/proxy-wasm-cpp-sdk",
        version = "921039ae983ce053bf5cba78a85a3c08ff9791e5",
        sha256 = "a11adfe4e6346d3318ff72643aa5569dc8439d7e8927ed148f93226fa255cc7a",
        strip_prefix = "proxy-wasm-cpp-sdk-{version}",
        urls = ["https://github.com/proxy-wasm/proxy-wasm-cpp-sdk/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.access_loggers.wasm",
            "envoy.bootstrap.wasm",
            "envoy.filters.http.wasm",
            "envoy.filters.network.wasm",
            "envoy.stat_sinks.wasm",
            "envoy.wasm.runtime.null",
            "envoy.wasm.runtime.v8",
            "envoy.wasm.runtime.wamr",
            "envoy.wasm.runtime.wasmtime",
        ],
        release_date = "2023-05-01",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/proxy-wasm/proxy-wasm-cpp-sdk/blob/{version}/LICENSE",
    ),
    proxy_wasm_cpp_host = dict(
        project_name = "WebAssembly for Proxies (C++ host implementation)",
        project_desc = "WebAssembly for Proxies (C++ host implementation)",
        project_url = "https://github.com/proxy-wasm/proxy-wasm-cpp-host",
        version = "f199214a43337e115469d9f0dd6b77858746441b",
        sha256 = "b06f193324650f80d1d5494046c45941884f4eb66025cff026edf3b506596150",
        strip_prefix = "proxy-wasm-cpp-host-{version}",
        urls = ["https://github.com/proxy-wasm/proxy-wasm-cpp-host/archive/{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = [
            "envoy.access_loggers.wasm",
            "envoy.bootstrap.wasm",
            "envoy.filters.http.wasm",
            "envoy.filters.network.wasm",
            "envoy.stat_sinks.wasm",
            "envoy.wasm.runtime.null",
            "envoy.wasm.runtime.v8",
            "envoy.wasm.runtime.wamr",
            "envoy.wasm.runtime.wasmtime",
        ],
        release_date = "2024-08-19",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/proxy-wasm/proxy-wasm-cpp-host/blob/{version}/LICENSE",
    ),
    proxy_wasm_rust_sdk = dict(
        project_name = "WebAssembly for Proxies (Rust SDK)",
        project_desc = "WebAssembly for Proxies (Rust SDK)",
        project_url = "https://github.com/proxy-wasm/proxy-wasm-rust-sdk",
        version = "0.2.2",
        sha256 = "3d9e8f39f0356016c8ae6c74c0224eae1b44168be0ddf79e387d918a8f2cb4c6",
        strip_prefix = "proxy-wasm-rust-sdk-{version}",
        urls = ["https://github.com/proxy-wasm/proxy-wasm-rust-sdk/archive/v{version}.tar.gz"],
        use_category = ["test_only"],
        release_date = "2024-07-21",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/proxy-wasm/proxy-wasm-rust-sdk/blob/v{version}/LICENSE",
    ),
    emsdk = dict(
        project_name = "Emscripten SDK",
        project_desc = "Emscripten SDK (use by Wasm)",
        project_url = "https://github.com/emscripten-core/emsdk",
        # v3.1.7 with Bazel fixes
        version = "0ea8f8a8707070e9a7c83fbb4a3065683bcf1799",
        sha256 = "1ca0ff918d476c55707bb99bc0452be28ac5fb8f22a9260a8aae8a38d1bc0e27",
        strip_prefix = "emsdk-{version}/bazel",
        urls = ["https://github.com/emscripten-core/emsdk/archive/{version}.tar.gz"],
        use_category = ["test_only"],
        release_date = "2022-03-09",
        license = "Emscripten SDK",
        license_url = "https://github.com/emscripten-core/emsdk/blob/{version}/LICENSE",
    ),
    rules_rust = dict(
        project_name = "Bazel rust rules",
        project_desc = "Bazel rust rules (used by Wasm)",
        project_url = "https://github.com/bazelbuild/rules_rust",
        version = "0.51.0",
        sha256 = "042acfb73469b2d1848fe148d81c3422c61ea47a9e1900f1c9ec36f51e8e7193",
        # Note: rules_rust should point to the releases, not archive to avoid the hassle of bootstrapping in crate_universe.
        # This is described in https://bazelbuild.github.io/rules_rust/crate_universe.html#setup, otherwise bootstrap
        # is required which in turn requires a system CC toolchains, not the bazel controlled ones.
        urls = ["https://github.com/bazelbuild/rules_rust/releases/download/{version}/rules_rust-v{version}.tar.gz"],
        use_category = [
            "controlplane",
            "dataplane_core",
            "dataplane_ext",
        ],
        implied_untracked_deps = ["rules_cc"],
        extensions = ["envoy.wasm.runtime.wasmtime"],
        release_date = "2024-09-19",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_rust/blob/{version}/LICENSE.txt",
    ),
    com_github_fdio_vpp_vcl = dict(
        project_name = "VPP Comms Library",
        project_desc = "FD.io Vector Packet Processor (VPP) Comms Library",
        project_url = "https://fd.io/",
        version = "39e7f2e650a65bac596a6fc968c9860a1496a5bf",
        sha256 = "63742d09ac223b30d71d9fe2da5afb75253fde31e3cf986a3f9ce89e264e801a",
        strip_prefix = "vpp-{version}",
        urls = ["https://github.com/FDio/vpp/archive/{version}.tar.gz"],
        use_category = ["other"],
        extensions = ["envoy.bootstrap.vcl"],
        release_date = "2024-03-13",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/FDio/vpp/blob/{version}/LICENSE",
    ),
    intel_dlb = dict(
        project_name = "Intel Dlb",
        project_desc = "Dlb",
        project_url = "https://networkbuilders.intel.com/solutionslibrary/queue-management-and-load-balancing-on-intel-architecture",
        version = "8.8.0",
        sha256 = "564534254ef32bfed56e0a464c53fca0907e446b30929c253210e2c3d6de58b9",
        urls = ["https://downloadmirror.intel.com/819078/dlb_linux_src_release_8.8.0.txz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.network.connection_balance.dlb"],
        release_date = "2023-12-15",
        cpe = "N/A",
    ),
    libpfm = dict(
        project_name = "libpfm",
        project_desc = "A helper library to develop monitoring tools",
        project_url = "https://sourceforge.net/projects/perfmon2",
        version = "4.11.0",
        sha256 = "5da5f8872bde14b3634c9688d980f68bda28b510268723cc12973eedbab9fecc",
        strip_prefix = "libpfm-{version}",
        use_category = ["test_only"],
        urls = ["https://downloads.sourceforge.net/project/perfmon2/libpfm4/libpfm-{version}.tar.gz"],
        release_date = "2020-09-03",
    ),
    rules_license = dict(
        project_name = "rules_license",
        project_desc = "Bazel rules for checking open source licenses",
        project_url = "https://github.com/bazelbuild/rules_license",
        version = "1.0.0",
        sha256 = "26d4021f6898e23b82ef953078389dd49ac2b5618ac564ade4ef87cced147b38",
        urls = ["https://github.com/bazelbuild/rules_license/releases/download/{version}/rules_license-{version}.tar.gz"],
        use_category = ["build", "dataplane_core", "controlplane"],
        release_date = "2024-09-05",
        cpe = "N/A",
        license = "Apache-2.0",
        license_url = "https://github.com/bazelbuild/rules_license/blob/{version}/LICENSE",
    ),
    utf8_range = dict(
        project_name = "utf8_range",
        project_desc = "Fast UTF-8 validation with Range algorithm (NEON+SSE4+AVX2)",
        project_url = "https://github.com/protocolbuffers/utf8_range",
        version = "d863bc33e15cba6d873c878dcca9e6fe52b2f8cb",
        sha256 = "c56f0a8c562050e6523a3095cf5610d19c190cd99bac622cc3e5754be51aaa7b",
        strip_prefix = "utf8_range-{version}",
        urls = ["https://github.com/protocolbuffers/utf8_range/archive/{version}.tar.gz"],
        use_category = ["build", "dataplane_core", "controlplane"],
        release_date = "2023-05-26",
        cpe = "N/A",
        license = "MIT",
        license_url = "https://github.com/protocolbuffers/utf8_range/blob/{version}/LICENSE",
    ),
    com_github_maxmind_libmaxminddb = dict(
        project_name = "maxmind_libmaxminddb",
        project_desc = "C library for reading MaxMind DB files",
        project_url = "https://github.com/maxmind/libmaxminddb",
        version = "1.11.0",
        sha256 = "b2eea79a96fed77ad4d6c39ec34fed83d45fcb75a31c58956813d58dcf30b19f",
        strip_prefix = "libmaxminddb-{version}",
        urls = ["https://github.com/maxmind/libmaxminddb/releases/download/{version}/libmaxminddb-{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        extensions = ["envoy.geoip_providers.maxmind"],
        release_date = "2024-08-21",
        cpe = "cpe:2.3:a:maxmind:libmaxminddb:*",
        license = "Apache-2.0",
        license_url = "https://github.com/maxmind/libmaxminddb/blob/{version}/LICENSE",
    ),
    com_github_lz4_lz4 = dict(
        project_name = "LZ4",
        project_desc = "Extremely Fast Compression algorithm",
        project_url = "http://www.lz4.org/",
        version = "1.10.0",
        sha256 = "537512904744b35e232912055ccf8ec66d768639ff3abe5788d90d792ec5f48b",
        strip_prefix = "lz4-{version}",
        urls = ["https://github.com/lz4/lz4/archive/v{version}.tar.gz"],
        use_category = ["dataplane_ext"],
        release_date = "2024-07-22",
        extensions = ["envoy.compression.qatzip.compressor"],
        cpe = "N/A",
    ),
)

def _compiled_protoc_deps(locations, versions):
    for platform, sha in versions.items():
        locations["com_google_protobuf_protoc_%s" % platform] = dict(
            project_name = "Protocol Buffers (protoc) %s" % platform,
            project_desc = "Protoc compiler for protobuf (%s)" % platform,
            project_url = "https://developers.google.com/protocol-buffers",
            version = PROTOBUF_VERSION,
            sha256 = sha,
            urls = ["https://github.com/protocolbuffers/protobuf/releases/download/v{version}/protoc-{version}-%s.zip" % platform.replace("_", "-", 1)],
            use_category = ["dataplane_core", "controlplane"],
            release_date = "2024-03-27",
            cpe = "N/A",
            license = "Protocol Buffers",
            license_url = "https://github.com/protocolbuffers/protobuf/blob/v{version}/LICENSE",
        )

_compiled_protoc_deps(REPOSITORY_LOCATIONS_SPEC, PROTOC_VERSIONS)
